package com.ruoyi.mysystem.service.impl;

import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.mysystem.mapper.SysMessageMapper;
import com.ruoyi.mysystem.domain.SysMessage;
import com.ruoyi.mysystem.service.ISysMessageService;

/**
 * 消息管理Service业务层处理
 * 
 * @author bai
 * @date 2024-05-03
 */
@Service
public class SysMessageServiceImpl implements ISysMessageService 
{
    @Autowired
    private SysMessageMapper sysMessageMapper;

    /**
     * 查询消息管理
     * 
     * @param messageId 消息管理主键
     * @return 消息管理
     */
    @Override
    public SysMessage selectSysMessageByMessageId(Long messageId)
    {
        return sysMessageMapper.selectSysMessageByMessageId(messageId);
    }

    /**
     * 查询消息管理列表
     * 
     * @param sysMessage 消息管理
     * @return 消息管理
     */
    @Override
    public List<SysMessage> selectSysMessageList(SysMessage sysMessage)
    {
        return sysMessageMapper.selectSysMessageList(sysMessage);
    }

    /**
     * 新增消息管理
     * 
     * @param sysMessage 消息管理
     * @return 结果
     */
    @Override
    public int insertSysMessage(SysMessage sysMessage)
    {
        sysMessage.setCreateTime(DateUtils.getNowDate());
        return sysMessageMapper.insertSysMessage(sysMessage);
    }

    /**
     * 修改消息管理
     * 
     * @param sysMessage 消息管理
     * @return 结果
     */
    @Override
    public int updateSysMessage(SysMessage sysMessage)
    {
        sysMessage.setUpdateTime(DateUtils.getNowDate());
        return sysMessageMapper.updateSysMessage(sysMessage);
    }

    /**
     * 批量删除消息管理
     * 
     * @param messageIds 需要删除的消息管理主键
     * @return 结果
     */
    @Override
    public int deleteSysMessageByMessageIds(Long[] messageIds)
    {
        return sysMessageMapper.deleteSysMessageByMessageIds(messageIds);
    }

    /**
     * 删除消息管理信息
     * 
     * @param messageId 消息管理主键
     * @return 结果
     */
    @Override
    public int deleteSysMessageByMessageId(Long messageId)
    {
        return sysMessageMapper.deleteSysMessageByMessageId(messageId);
    }

    @Override
    public List<SysMessage> selectSysMyMessageList(SysMessage sysMessage) {
//        查询我发送的消息
        List<SysMessage> sysMessages = sysMessageMapper.selectSysMessageList(sysMessage);
//        查询我收到的消息
        String name = sysMessage.getCreateBy();
        sysMessage.setCreateBy(null);
        sysMessage.setSendee(name);
        List<SysMessage> sysSendeeMessages = sysMessageMapper.selectSysMessageList(sysMessage);
        sysMessages.addAll(sysSendeeMessages);
//        List<SysMessage> mySysMessages = new ArrayList<SysMessage>();
//        for(int i = 0;i<sysMessages.size();i++){
//            if(sysMessages.get(i).getCreateBy() == sysMessage.getCreateBy() || sysMessages.get(i).getSendee() == sysMessage.getSendee()){
//                mySysMessages.add(sysMessages.get(i));
//            }
//        }
        return sysMessages;
    }
}
